/*
 *
 * TransGantryEtcMapper.java Copyright(C) 2017-2020 - 北京云星宇交通科技股份有限公司
 * 
 * @date 2019-10-14
 */
package com.yxy.ms.manager.dao;

import java.util.Date;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.yxy.ms.manager.entity.po.TransGantryEtc;

@Mapper
public interface TransGantryEtcMapper {
    /**
     *
     * @mbg.generated 2019-10-14
     */
    int deleteByPrimaryKey(Long mid);

    /**
     *
     * @mbg.generated 2019-10-14
     */
    int insert(TransGantryEtc record);

    /**
     *
     * @mbg.generated 2019-10-14
     */
    int insertSelective(TransGantryEtc record);

    /**
     *
     * @mbg.generated 2019-10-14
     */
    TransGantryEtc selectByPrimaryKey(Long mid);

    /**
     *
     * @mbg.generated 2019-10-14
     */
    int updateByPrimaryKeySelective(TransGantryEtc record);

    /**
     *
     * @mbg.generated 2019-10-14
     */
    int updateByPrimaryKey(TransGantryEtc record);

    /**
     * 更新争议和记账数据
     * 
     * @auther hlx026
     * @param processResult
     *            处理结果
     * @param processReason
     *            处理原因
     * @param lastProcessTime
     *            最后处理时间
     * @param mid
     *            主键Mid
     * @return 是否成功
     */
    int updateByPendingCharge(@Param("processResult") int processResult, @Param("processReason") int processReason,
        @Param("lastProcessTime") Date lastProcessTime, @Param("mid") Long mid);

    /**
     * 通过争议下载更新扣费交易表
     * 
     * @author hlx026
     * @param processResult
     * @param fileId
     * @param lastProcessTime
     * @param messageId
     * @param mid
     * @return
     */
    int updateByTransaction(@Param("processResult") Integer processResult, @Param("fileId") Long fileId,
        @Param("lastProcessTime") Date lastProcessTime, @Param("messageId") Long messageId, @Param("mid") Long mid);

    /**
     * 通过异常交易退费消息数据查询mid
     * 
     * @author hlx026
     * @param issuerId
     * @param messageId
     * @param transId
     * @return
     */
    Long selectMidFromRefund(@Param("issuerId") String issuerId, @Param("messageId") Long messageId,
        @Param("transId") Integer transId);

    /**
     * 根据messageId更新时间并返回更新数量
     * 
     * @author hlx026
     * @param messageId
     *            包号
     * @param clearDate
     *            清分日，YYYY-MM-DD
     * @param lastProcessTime
     *            处理时间，YYYY-MM-DDTHH:MM:SS
     * @return 更新数量
     */
    int updateByMessageId(@Param("messageId") Long messageId, @Param("clearDate") Date clearDate,
        @Param("lastProcessTime") Date lastProcessTime);

    /**
     * 根据fileId更新时间并返回更新数量
     * 
     * @author hlx026
     * @param fileId
     * @param clearDate
     *            清分日，YYYY-MM-DD
     * @param lastProcessTime
     *            处理时间，YYYY-MM-DDTHH:MM:SS
     * @return 更新数量
     */
    int updateByFileId(@Param("fileId") Long fileId, @Param("clearDate") Date clearDate,
        @Param("lastProcessTime") Date lastProcessTime);
}